<?php
	/**
	 * @copyright (C)2016-2099 Hnaoyun Inc.
	 * @author XingMeng
	 * @email hnxsh@foxmail.com
	 * @date 2020年06月26日
	 *  会员前台模型
	 */

	namespace app\home\model;

	use core\basic\Model;
	use core\basic\Config;

	class MemberModel extends Model
	{

		// 会员登录
		public function login($where)
		{
			$field = array(
				'a.id',
				'a.ucode',
				'a.username',
				'a.useremail',
				'a.usermobile',
				'a.TradersPassword',
				'a.gid',
				'a.status',
				'b.gcode',
				'b.gname'
			);
			$join = array(
				'ay_member_group b',
				'a.gid=b.gcode',
				'LEFT'
			);
			if (!!$user = parent::table('ay_member a')->field($field)
				->join($join)
				->where($where)
				->find()) {
				$data = array(
					'login_count' => '+=1',
					'last_login_ip' => ip2long(get_user_ip()),
					'last_login_time' => get_datetime()
				);
				// 登录积分
				$score = Config::get('login_score') ?: 0;
				if (is_numeric($score) && $score > 0) {
					$data['score'] = '+=' . $score;
				}
				// 更新登录信息
				parent::table('ay_member')->where('id=' . $user->id)->update($data);
			}
			return $user;
		}

		// 会员注册
		public function register($data)
		{
			return parent::table('ay_member')->insert($data);
		}

		// 检查会员名称
		public function checkUsername($where)
		{
			return parent::table('ay_member')->where($where)->find();
		}

		// 读取会员字段
		public function getField()
		{
			return parent::table('ay_member_field')->field('name,description,required')
				->where('status=1')
				->order('sorting,id')
				->select();
		}

		// 获取最后一个code
		public function getLastUcode()
		{
			return parent::table('ay_member')->order('id DESC')->value('ucode');
		}

		// 获取当前会员信息
		public function getUser($id)
		{
			$field = array(
				'a.id',
				'a.pid',
				'a.username',
				'a.headpic',
				'a.status',
				'a.gid',
				'a.up_integral',
				'a.qcore',
				'a.score',
				'a.usermobile',
				'a.buyquota',
				'b.gcode',
				'b.gname'
			);
			$join = array(
				'ay_member_group b',
				'a.gid=b.gcode',
				'LEFT'
			);
			return parent::table('ay_member a')->field($field)
				->join($join)
				->where(['a.id' => $id])
				->find();
		}

		// 修改会员资料
		public function modUser($id, $data)
		{
			return parent::table('ay_member')->where(['id' => $id])->update($data);
		}

		// 获取第一个等级
		public function getFirstGroup()
		{
			return parent::table('ay_member_group')->order('gcode asc')->find();
		}

		// 获取等级ID
		public function getGroupID($gcode)
		{
			return parent::table('ay_member_group')->where("gcode='$gcode'")->value('id');
		}

		// 获取等级ID
		public function current_user()
		{
			$field = array(
				'a.username',
				'a.register_time',
				'a.usermobile',
				'a.pid',
				'a.id',
				'a.gid',
				'a.headpic',
				'b.gcode',
				'b.gname'
			);
			$join = array(
				'ay_member_group b',
				'a.gid=b.gcode',
				'LEFT'
			);
			return parent::table('ay_member a')->field($field)
				->join($join)
				->select();

		}

		//添加用户银行卡信息
		public function addUserbank($data)
		{
			return parent::table('ay_bank')->insert($data);
		}

		//查询用户银行卡信息
		public function UserbankList($id)
		{
			return parent::table('ay_bank')->where(['user_id' => $id])->select();
		}

		//添加用户银行卡信息
		public function DelUserbank($id)
		{
			return parent::table('ay_bank')->where("id=$id")->delete();
		}

		//添加用户银行卡信息
		public function countUserbank($id)
		{
			return parent::table('ay_bank')->where("user_id=$id")->count();
		}

		//查询银行卡是否已经存在
		public function UserbankInfo($where)
		{

			return parent::table('ay_bank')->where($where)->find();
		}

		//太阳线查询
		public function GetTree($arr, $pid)
		{
			global $tree;

			foreach ($arr as $key => $val) {

				if ($val['pid'] == $pid) {

					$val['username'] = $val['username'];
					$tree[] = $val;
					$this->GetTree($arr, $val['id']);

				}
			}
			return $tree;
		}
		/**
		 * 字段自增
		 *
		 * @param string $field
		 *            字段
		 * @param number $value
		 *            值
		 * @return boolean|boolean|array
		 */
		public function UsersetInc($where,$field,$value)
		{
			return parent::table('ay_member')->where($where)->setInc($field,$value);
		}
		/**
		 * 字段自减
		 *
		 * @param string $field
		 *            字段
		 * @param number $value
		 *            值
		 * @return boolean|boolean|array
		 */
		public function UsersetDec($where,$field,$value)
		{
			return parent::table('ay_member')->where($where)->setDec($field,$value);
		}

	}